import { useState } from "react";

/**
 * title: 标题,
 * width: 宽度, 单列 450, 双列 600
 * callback: 回调函数,
 * row: 行数据,
 */
export const useDialog = (props = {}) => {
    // 标题
    const [title, setTitle] = useState(props.title || '');
    // 弹框宽度
    const width = props?.width || 450;
    // 弹框高度
    const height = props?.height || undefined;

    // 参数
    const [row, setRow] = useState({});
    // 弹窗状态（打开/关闭）
    const [visible, setVisible] = useState(false);

    // 打开/关闭弹窗
    function isOpenDialog(row = undefined, title = undefined) {
        setVisible(visible ? false : true);
        setRow(row || {});
        title && setTitle(title);
    }

    /**
     * 回调函数
     * @param param 回调函数参数
     * @param callback 自定义回调函数
     */
    function onCallback(param = undefined, callback = undefined) {
        typeof props?.callback === 'function' ?
            // 预定义的回调函数
            props.callback(param) :
            // 自定义回调函数
            typeof callback === 'function' && callback(param);
    }

    return {
        row,
        title,
        width,
        height,
        visible,
        setRow,
        onCallback,
        isOpenDialog,
    }
}